home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / Tool Chest / Interfaces / MPW Interfaces / RIncludes / BalloonTypes.r < prev    next >
Encoding:
Text File  |  1993-09-17  |  25.0 KB  |  578 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        BalloonTypes.r
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. */
  11.  
  12.  
  13. #ifndef __BALLOONTYPES_R__
  14. #define __BALLOONTYPES_R__
  15.  
  16. #define HelpMgrVersion            2            /* version of Help Manager */
  17.  
  18. #define kHMHelpID                -5696        /* resource ID of Help Manager resources */
  19. #define kHMHelpMenuID            -16490        /* resource ID of Help Manager Menu resource */
  20. #define kBalloonWDEFID            126            /* resource ID of Balloon WDEF procedure */
  21.  
  22. /* Option bits for help manager resources */
  23.  
  24. #define hmDefaultOptions        0            /* default options for help manager resources */
  25. #define hmUseSubID                1            /* treat resID's in resources as subID's of driver base ID (for Desk Accessories) */
  26. #define hmAbsoluteCoords        2            /* ignore window port origin and treat rectangles as absolute coords (local to window) */ 
  27. #define hmSaveBitsNoWindow        4            /* don't create a window, just blast bits on screen. No update event is generated */
  28. #define hmSaveBitsWindow        8            /* create a window, but restore bits behind window when window goes away & generate update event */
  29. #define hmMatchInTitle            16            /* for hwin resources, match string anywhere in window title string */
  30.  
  31. /* Generic defines for the switch items used in 'hrct', 'hmnu', & 'hdlg's    */
  32. #define    HMStringItemID            1            /* pstring is used in help message */
  33. #define    HMPictItemID            2            /* 'PICT' resource ID is used in help message */
  34. #define    HMStringResItemID        3            /* 'STR#' resource ID and index is used in help message */
  35. #define HMTEResItemID            6            /* Styled Text Edit resources are used in help message */
  36. #define HMSTRResItemID            7            /* 'STR ' resource ID is used in help message */
  37. #define HMSkipItemID            256            /* don't display a balloon */
  38. #define HMCompareItemID            512            /* for hmnu resources, compare menu item to string and use help msg if match */
  39. #define HMNamedResourceID        1024        /* for hmnu resources, use menu item as call to GetNamedResource() to fetch resource */
  40. #define HMTrackCntlID            2048        /* not yet implemented, reserved */
  41.  
  42. /*----------------------------hmnu • Help Mgr Menu Balloon Template----------------------------*/
  43. type 'hmnu' {
  44.         integer;                                    /* Help Version */
  45.         longint;                                    /* Options */
  46.         integer;                                    /* Balloon ProcID */
  47.         integer;                                     /* Balloon variant */
  48.         integer = $$CountOf(HMenuArray);            /* Count of menu items (below) */
  49.  
  50.         switch {            /* Special Message for missing array items */
  51.                 case HMStringItem:
  52. hmnuMissStringBeg:        integer = (hmnuMissStringEnd - hmnuMissStringBeg) / 8;
  53.                         key int = HMStringItemID;
  54.                         pstring;            /* missing HMenuArray items (Enabled)  */
  55.                         pstring;            /* missing HMenuArray items (Disabled)  */
  56.                         pstring;            /* missing HMenuArray items (checked) */
  57.                         pstring;            /* missing HMenuArray items (other)  */
  58.                         align word;            /* always word align the code for the pstring */
  59. hmnuMissStringEnd:                        
  60.                 case HMPictItem:
  61. hmnuMissPictBeg:        integer = (hmnuMissPictEnd - hmnuMissPictBeg) / 8;
  62.                         key int = HMPictItemID;
  63.                         integer;            /* use for missing HMenuArray items  */
  64.                         integer;            /* use for missing HMenuArray items  */
  65.                         integer;            /* use for missing HMenuArray items  */
  66.                         integer;            /* use for missing HMenuArray items  */
  67. hmnuMissPictEnd:
  68.                 case HMStringResItem:
  69. hmnuMissStringResBeg:    integer = (hmnuMissStringResEnd - hmnuMissStringResBeg) / 8;
  70.                         key int = HMStringResItemID;
  71.                         integer; integer;    /* Miss or 0 HMenuArray STR# res ID, index # */
  72.                         integer; integer;    /* Miss or 0 HMenuArray STR# res ID, index # */
  73.                         integer; integer;    /* Miss or 0 HMenuArray STR# res ID, index # */
  74.                         integer; integer;    /* Miss or 0 HMenuArray STR# res ID, index # */
  75. hmnuMissStringResEnd:
  76.                 case HMTEResItem:
  77. hmnuMissTEResBeg:        integer = (hmnuMissTEResEnd - hmnuMissTEResBeg) / 8;
  78.                         key int = HMTEResItemID;
  79.                         integer;            /* use for missing HMenuArray items */
  80.                         integer;            /* use for missing HMenuArray items */
  81.                         integer;            /* use for missing HMenuArray items */
  82.                         integer;            /* use for missing HMenuArray items */
  83. hmnuMissTEResEnd:
  84.                 case HMSTRResItem:
  85. hmnuMissSTRResBeg:        integer = (hmnuMissSTRResEnd - hmnuMissSTRResBeg) / 8;
  86.                         key int = HMSTRResItemID;
  87.                         integer;            /* use for missing HMenuArray items */
  88.                         integer;            /* use for missing HMenuArray items */
  89.                         integer;            /* use for missing HMenuArray items */
  90.                         integer;            /* use for missing HMenuArray items */
  91. hmnuMissSTRResEnd:
  92.                 case HMSkipItem:
  93. hmnuMissSkipBeg:        integer = (hmnuMissSkipEnd - hmnuMissSkipBeg) / 8;
  94.                         key int = HMSkipItemID;    /* use when there is no missing msg */
  95. hmnuMissSkipEnd:                        
  96.             };
  97.             
  98.         array HMenuArray {
  99.                 switch {
  100.                     case HMStringItem:
  101. hmnuStringBeg:            integer = (hmnuStringEnd[$$ArrayIndex(HMenuArray)] - hmnuStringBeg[$$ArrayIndex(HMenuArray)]) / 8;
  102.                         key int = HMStringItemID;
  103.                         pstring;            /* Enabled menu message string  */
  104.                         pstring;            /* Disabled menu message string */
  105.                         pstring;            /* Checked menu message string */
  106.                         pstring;            /* other menu message string */
  107.                         align word;
  108. hmnuStringEnd:                        
  109.                     case HMPictItem:
  110. hmnuPictBeg:            integer = (hmnuPictEnd[$$ArrayIndex(HMenuArray)] - hmnuPictBeg[$$ArrayIndex(HMenuArray)]) / 8;
  111.                         key int = HMPictItemID;
  112.                         integer;            /* Enabled menu message pict ID  */
  113.                         integer;            /* Disabled menu message pict ID */
  114.                         integer;            /* Checked menu message pict ID */
  115.                         integer;            /* other menu message pict ID */        
  116. hmnuPictEnd:                                                
  117.                     case HMStringResItem:
  118. hmnuStringResBeg:        integer = (hmnuStringResEnd[$$ArrayIndex(HMenuArray)] - hmnuStringResBeg[$$ArrayIndex(HMenuArray)]) / 8;
  119.                         key int = HMStringResItemID;
  120.                         integer; integer;    /* Enabled STR# res ID, index # */
  121.                         integer; integer;    /* Disabled STR# res ID, index # */
  122.                         integer; integer;    /* Checked menu message STR# res ID, index # */
  123.                         integer; integer;    /* other menu message STR# res ID, index # */
  124. hmnuStringResEnd:                        
  125.                     case HMTEResItem:
  126. hmnuTEResBeg:            integer = (hmnuTEResEnd[$$ArrayIndex(HMenuArray)] - hmnuTEResBeg[$$ArrayIndex(HMenuArray)]) / 8;
  127.                         key int = HMTEResItemID;
  128.                         integer;            /* Enabled menu message TERes ID */
  129.                         integer;            /* Disabled menu message TERes ID */
  130.                         integer;            /* Checked message TERes ID */
  131.                         integer;            /* other menu message TERes ID */    
  132. hmnuTEResEnd:                        
  133.                     case HMSTRResItem:
  134. hmnuSTRResBeg:            integer = (hmnuSTRResEnd[$$ArrayIndex(HMenuArray)] - hmnuSTRResBeg[$$ArrayIndex(HMenuArray)]) / 8;
  135.                         key int = HMSTRResItemID;
  136.                         integer;            /* Enabled menu message STR ID */
  137.                         integer;            /* Disabled menu message STR ID */
  138.                         integer;            /* Checked message STR ID */
  139.                         integer;            /* other menu message STR ID */    
  140. hmnuSTRResEnd:                        
  141.                     case HMSkipItem:
  142. hmnuSkipBeg:            integer = (hmnuSkipEnd[$$ArrayIndex(HMenuArray)] - hmnuSkipBeg[$$ArrayIndex(HMenuArray)]) / 8;
  143.                         key int = HMSkipItemID;
  144. hmnuSkipEnd:                        
  145.                     case HMCompareItem:
  146. hmnuCompareBeg:            integer = (hmnuCompareEnd[$$ArrayIndex(HMenuArray)] - hmnuCompareBeg[$$ArrayIndex(HMenuArray)]) / 8;
  147.                         key int = HMCompareItemID;
  148.                         pstring;            /* if itemstr matches, use this item, else goto next item */
  149.                         align word;
  150.                         
  151.                         switch {                    /* case the message type */
  152.                     
  153.                             case HMStringItem:
  154.                                 key int = HMStringItemID;
  155.                                 pstring;            /* Enabled menu message string  */
  156.                                 pstring;            /* Disabled menu message string */
  157.                                 pstring;            /* Checked menu message string */
  158.                                 pstring;            /* other menu message string */
  159.                                 align word;
  160.  
  161.                             case HMPictItem:
  162.                                 key int = HMPictItemID;
  163.                                 integer;            /* Enabled menu message pict ID  */
  164.                                 integer;            /* Disabled menu message pict ID */
  165.                                 integer;            /* Checked menu message pict */
  166.                                 integer;            /* other menu message pict */        
  167.  
  168.                             case HMStringResItem:
  169.                                 key int = HMStringResItemID;
  170.                                 integer; integer;    /* Enabled STR# res ID, index # */
  171.                                 integer; integer;    /* Disabled STR# res ID, index # */
  172.                                 integer; integer;    /* Checked menu message STR# res ID, index # */
  173.                                 integer; integer;    /* other menu message STR# res ID, index # */
  174.  
  175.                             case HMTEResItem:
  176.                                 key int = HMTEResItemID;
  177.                                 integer;            /* Enabled menu message TERes ID */
  178.                                 integer;            /* Disabled menu message TERes ID */
  179.                                 integer;            /* Checked menu message TERes ID */
  180.                                 integer;            /* other menu message TERes ID */    
  181.  
  182.                             case HMSTRResItem:
  183.                                 key int = HMSTRResItemID;
  184.                                 integer;            /* Enabled menu message STR ID */
  185.                                 integer;            /* Disabled menu message STR ID */
  186.                                 integer;            /* Checked menu message STR ID */
  187.                                 integer;            /* other menu message STR ID */    
  188.  
  189.                             case HMSkipItem:
  190.                                 key int = HMSkipItemID;
  191.                         };
  192. hmnuCompareEnd:                
  193.                     case HMNamedResourceItem:
  194. hmnuNamedResBeg:        integer = (hmnuNamedResEnd[$$ArrayIndex(HMenuArray)] - hmnuNamedResBeg[$$ArrayIndex(HMenuArray)]) / 8;
  195.                         key int = HMNamedResourceID;
  196.                         literal longint;    /*    res type of resource to fetch, using item name    */
  197. hmnuNamedResEnd:                        
  198.                 };
  199.         };
  200. };
  201.  
  202. /*----------------------------hdlg • Help Mgr Dialog Balloon Template--------------------------*/
  203. type 'hdlg' {
  204.         integer;                                    /* Help Version */
  205.         integer;                                    /* item # (0-based) of first DITL item */
  206.         longint;                                    /* Options    */
  207.         integer;                                    /* Balloon ProcID */
  208.         integer;                                     /* Balloon variant */
  209.         
  210.         integer = $$CountOf(HDialogArray);            /* Count of HDialogArray items    */
  211.         
  212.         switch {            /* Special Messages for missing array items */
  213.                 case HMStringItem:
  214. hdlgMissStringBeg:        integer = (hdlgMissStringEnd - hdlgMissStringBeg) / 8;
  215.                         key int = HMStringItemID;
  216.                         point;                            /* tip            */
  217.                         rect;                            /* hotRect        */
  218.                         pstring;            /* use for missing HDialogArray items  */
  219.                         pstring;            /* use for missing HDialogArray items  */
  220.                         pstring;            /* use for missing HDialogArray items  */
  221.                         pstring;            /* use for missing HDialogArray items  */
  222.                         align word;            /* always word align the code for the pstring */
  223. hdlgMissStringEnd:                        
  224.                 case HMPictItem:
  225. hdlgMissPictBeg:        integer = (hdlgMissPictEnd - hdlgMissPictBeg) / 8;
  226.                         key int = HMPictItemID;
  227.                         point;                            /* tip            */
  228.                         rect;                            /* hotRect        */
  229.                         integer;            /* use for missing HDialogArray items  */
  230.                         integer;            /* use for missing HDialogArray items  */
  231.                         integer;            /* use for missing HDialogArray items  */
  232.                         integer;            /* use for missing HDialogArray items  */
  233. hdlgMissPictEnd:
  234.                 case HMStringResItem:
  235. hdlgMissStringResBeg:    integer = (hdlgMissStringResEnd - hdlgMissStringResBeg) / 8;
  236.                         key int = HMStringResItemID;
  237.                         point;                            /* tip            */
  238.                         rect;                            /* hotRect        */
  239.                         integer; integer;    /* Miss or 0 HDialogArray STR# res ID, index # */
  240.                         integer; integer;    /* Miss or 0 HDialogArray STR# res ID, index # */
  241.                         integer; integer;    /* Miss or 0 HDialogArray STR# res ID, index # */
  242.                         integer; integer;    /* Miss or 0 HDialogArray STR# res ID, index # */
  243. hdlgMissStringResEnd:
  244.                 case HMTEResItem:
  245. hdlgMissTEResBeg:        integer = (hdlgMissTEResEnd - hdlgMissTEResBeg) / 8;
  246.                         key int = HMTEResItemID;
  247.                         point;                            /* tip            */
  248.                         rect;                            /* hotRect        */
  249.                         integer;            /* use for missing HDialogArray items */
  250.                         integer;            /* use for missing HDialogArray items */
  251.                         integer;            /* use for missing HDialogArray items */
  252.                         integer;            /* use for missing HDialogArray items */
  253. hdlgMissTEResEnd:
  254.                 case HMSTRResItem:
  255. hdlgMissSTRResBeg:        integer = (hdlgMissSTRResEnd - hdlgMissSTRResBeg) / 8;
  256.                         key int = HMSTRResItemID;
  257.                         point;                            /* tip            */
  258.                         rect;                            /* hotRect        */
  259.                         integer;            /* use for missing HDialogArray items */
  260.                         integer;            /* use for missing HDialogArray items */
  261.                         integer;            /* use for missing HDialogArray items */
  262.                         integer;            /* use for missing HDialogArray items */
  263. hdlgMissSTRResEnd:
  264.                 case HMSkipItem:
  265. hdlgMissSkipBeg:        integer = (hdlgMissSkipEnd - hdlgMissSkipBeg) / 8;
  266.                         key int = HMSkipItemID;    /* use when there is no missing msg */
  267. hdlgMissSkipEnd:                        
  268.             };
  269.  
  270.         /* this is an array of records corresponding to dialog items in a dialog */
  271.         array HDialogArray {
  272.                 switch {
  273.                     case HMStringItem:
  274. hdlgStringBeg:            integer = (hdlgStringEnd[$$ArrayIndex(HDialogArray)] - hdlgStringBeg[$$ArrayIndex(HDialogArray)]) / 8;
  275.                         key int = HMStringItemID;        /* helpType        */
  276.                         point;                            /* tip            */
  277.                         rect;                            /* hotRect        */
  278.                         pstring;        /* Enabled dialog item message string    */
  279.                         pstring;        /* Disabled dialog item message string    */
  280.                         pstring;        /* Checked dialog item message string    */
  281.                         pstring;        /* other dialog item message string        */
  282.                         align word;        /* always word align the code */
  283. hdlgStringEnd:                        
  284.                     case HMPictItem:
  285. hdlgPictBeg:            integer = (hdlgPictEnd[$$ArrayIndex(HDialogArray)] - hdlgPictBeg[$$ArrayIndex(HDialogArray)]) / 8;
  286.                         key int = HMPictItemID;            /* helpType        */
  287.                         point;                            /* tip            */
  288.                         rect;                            /* hotRect        */
  289.                         integer;        /* Enabled dialog item message pict ID    */
  290.                         integer;        /* Disabled dialog item message pict ID    */
  291.                         integer;        /* Checked dialog item message pict ID    */
  292.                         integer;        /* other dialog item message pict ID     */    
  293. hdlgPictEnd:                        
  294.                     case HMStringResItem:
  295. hdlgStringResBeg:        integer = (hdlgStringResEnd[$$ArrayIndex(HDialogArray)] - hdlgStringResBeg[$$ArrayIndex(HDialogArray)]) / 8;
  296.                         key int = HMStringResItemID;    /* helpType        */
  297.                         point;                            /* tip            */
  298.                         rect;                            /* hotRect        */
  299.                         integer; integer;    /* Enabled STR# res ID, index #        */
  300.                         integer; integer;    /* Disabled STR# res ID, index #    */
  301.                         integer; integer;    /* Checked STR# res ID, index #        */
  302.                         integer; integer;    /* other STR# res ID, index #        */
  303. hdlgStringResEnd:                        
  304.                     case HMTEResItem:
  305. hdlgTEResBeg:            integer = (hdlgTEResEnd[$$ArrayIndex(HDialogArray)] - hdlgTEResBeg[$$ArrayIndex(HDialogArray)]) / 8;
  306.                         key int = HMTEResItemID;        /* helpType        */
  307.                         point;                            /* tip            */
  308.                         rect;                            /* hotRect        */
  309.                         integer;        /* Enabled dialog item message TERes ID */
  310.                         integer;        /* Disabled item message TERes ID        */
  311.                         integer;        /* Checked item message TERes ID        */
  312.                         integer;        /* other item message TERes ID            */    
  313. hdlgTEResEnd:                        
  314.                     case HMSTRResItem:
  315. hdlgSTRResBeg:            integer = (hdlgSTRResEnd[$$ArrayIndex(HDialogArray)] - hdlgSTRResBeg[$$ArrayIndex(HDialogArray)]) / 8;
  316.                         key int = HMSTRResItemID;        /* helpType        */
  317.                         point;                            /* tip            */
  318.                         rect;                            /* hotRect        */
  319.                         integer;        /* Enabled dialog item message STR ID    */
  320.                         integer;        /* Disabled dialog item message STR ID    */
  321.                         integer;        /* Checked dialog item message STR ID    */
  322.                         integer;        /* other dialog item message STR ID        */    
  323. hdlgSTRResEnd:                        
  324.                     case HMSkipItem:
  325. hdlgSkipBeg:            integer = (hdlgSkipEnd[$$ArrayIndex(HDialogArray)] - hdlgSkipBeg[$$ArrayIndex(HDialogArray)]) / 8;
  326.                         key int = HMSkipItemID;
  327. hdlgSkipEnd:                        
  328.                 };
  329.         };
  330. };
  331.  
  332. /*----------------------------hwin • Help Mgr Window Balloon Template--------------------------*/
  333. type 'hwin' {
  334.         integer;                                    /* Help Version */
  335.         longint;                                    /* Options                */
  336.         integer = $$CountOf(HWinArray);                /* Count                */
  337.         array HWinArray {
  338.                 integer;            /* resource ID for help template         */
  339.                 literal longint;    /* res type of template (hdlg or hrct)    */
  340.                 integer;            /* len of comparison string             */
  341.                 pstring;            /* comparison string for window title    */
  342.                 align word;
  343.         };
  344. };
  345.  
  346. /*----------------------------hrct • Help Mgr Rectangle List Template-------------------------*/
  347. type 'hrct' {
  348.         integer;                                    /* Help Version         */
  349.         longint;                                    /* Options                */
  350.         integer;                                    /* Balloon ProcID        */
  351.         integer;                                     /* Balloon Variant        */
  352.         integer = $$CountOf(HRectArray);            /* Count of hrct Msgs    */
  353.  
  354.         array HRectArray {
  355.                 switch {
  356.                     case HMStringItem:
  357. hrctStringBeg:            integer = (hrctStringEnd[$$ArrayIndex(HRectArray)] - hrctStringBeg[$$ArrayIndex(HRectArray)]) / 8;
  358.                         key int = HMStringItemID;    /* helpType            */
  359.                         point;                        /* tip                */
  360.                         rect;                        /* hotRect            */
  361.                         pstring;                    /* STR255            */
  362.                         align word;                    /* keep aligned        */
  363. hrctStringEnd:
  364.                     case HMPictItem:
  365. hrctPictBeg:            integer = (hrctPictEnd[$$ArrayIndex(HRectArray)] - hrctPictBeg[$$ArrayIndex(HRectArray)]) / 8;
  366.                         key int = HMPictItemID;        /* helpType            */
  367.                         point;                        /* tip                */
  368.                         rect;                        /* hotRect            */
  369.                         integer;                    /* Picture Res ID    */
  370. hrctPictEnd:
  371.                     case HMStringResItem:
  372. hrctStringResBeg:        integer = (hrctStringResEnd[$$ArrayIndex(HRectArray)] - hrctStringResBeg[$$ArrayIndex(HRectArray)]) / 8;
  373.                         key int = HMStringResItemID;/* helpType            */
  374.                         point;                        /* tip                */
  375.                         rect;                        /* hotRect            */
  376.                         integer; integer;            /* STR# ID, index #    */
  377. hrctStringResEnd:
  378.                     case HMTEResItem:
  379. hrctTEResBeg:            integer = (hrctTEResEnd[$$ArrayIndex(HRectArray)] - hrctTEResBeg[$$ArrayIndex(HRectArray)]) / 8;
  380.                         key int = HMTEResItemID;    /* helpType            */
  381.                         point;                        /* tip                */
  382.                         rect;                        /* hotRect            */
  383.                         integer;                    /* TextEdit res ID    */
  384. hrctTEResEnd:
  385.                     case HMSTRResItem:
  386. hrctSTRResBeg:            integer = (hrctSTRResEnd[$$ArrayIndex(HRectArray)] - hrctSTRResBeg[$$ArrayIndex(HRectArray)]) / 8;
  387.                         key int = HMSTRResItemID;    /* helpType            */
  388.                         point;                        /* tip                */
  389.                         rect;                        /* hotRect            */
  390.                         integer;                    /* STR res ID        */
  391. hrctSTRResEnd:
  392.                     case HMSkipItem:
  393. hrctSkipBeg:            integer = (hrctSkipEnd[$$ArrayIndex(HRectArray)] - hrctSkipBeg[$$ArrayIndex(HRectArray)]) / 8;
  394.                         key int = HMSkipItemID;        /* skip item (leave a hole) */
  395.                         point;                        /* tip options (keep same structure as other items)    */
  396.                         rect;                        /* skip this rect            */
  397. hrctSkipEnd:
  398.                     case HMTrackControlStringItem:
  399. hrctTCStringBeg:        integer = (hrctTCStringEnd[$$ArrayIndex(HRectArray)] - hrctTCStringBeg[$$ArrayIndex(HRectArray)]) / 8;
  400.                         key int = HMStringItemID+HMTrackCntlID;
  401.                         point;                        /* tip                */
  402.                         rect;                        /* hotRect            */
  403.                         pstring;                    /* Enabled control message string        */
  404.                         pstring;                    /* Disabled control message string        */
  405.                         pstring;                    /* Checked control message string        */
  406.                         pstring;                    /* other control message string            */
  407.                         align word;                    /* keep aligned        */
  408. hrctTCStringEnd:                        
  409.                     case HMTrackControlPictItem:
  410. hrctTCPictBeg:            integer = (hrctTCPictEnd[$$ArrayIndex(HRectArray)] - hrctTCPictBeg[$$ArrayIndex(HRectArray)]) / 8;
  411.                         key int = HMPictItemID+HMTrackCntlID;
  412.                         point;                        /* tip                */
  413.                         rect;                        /* hotRect            */
  414.                         integer;                    /* Enabled control message pict ID        */
  415.                         integer;                    /* Disabled control message pict ID        */
  416.                         integer;                    /* Checked control message pict ID        */
  417.                         integer;                    /* other control message pict ID         */    
  418. hrctTCPictEnd:                        
  419.                     case HMTrackControlStringResItem:
  420. hrctTCStringResBeg:        integer = (hrctTCStringResEnd[$$ArrayIndex(HRectArray)] - hrctTCStringResBeg[$$ArrayIndex(HRectArray)]) / 8;
  421.                         key int = HMStringResItemID+HMTrackCntlID;
  422.                         point;                        /* tip                */
  423.                         rect;                        /* hotRect            */
  424.                         integer; integer;            /* Enabled STR# res ID, index #        */
  425.                         integer; integer;            /* Disabled STR# res ID, index #    */
  426.                         integer; integer;            /* Checked STR# res ID, index #        */
  427.                         integer; integer;            /* other STR# res ID, index #        */
  428. hrctTCStringResEnd:                        
  429.                     case HMTrackControlTEResItem:
  430. hrctTCTEResBeg:            integer = (hrctTCTEResEnd[$$ArrayIndex(HRectArray)] - hrctTCTEResBeg[$$ArrayIndex(HRectArray)]) / 8;
  431.                         key int = HMTEResItemID+HMTrackCntlID;
  432.                         point;                        /* tip                */
  433.                         rect;                        /* hotRect            */
  434.                         integer;                    /* Enabled TextEdit hdl spec ID        */
  435.                         integer;                    /* Disabled TextEdit hdl spec ID    */
  436.                         integer;                    /* Checked TextEdit hdl spec ID        */
  437.                         integer;                    /* other TextEdit hdl spec ID        */
  438. hrctTCTEResEnd:                        
  439.                     case HMTrackControlSTRResItem:
  440. hrctTCSTRResBeg:        integer = (hrctTCSTRResEnd[$$ArrayIndex(HRectArray)] - hrctTCSTRResBeg[$$ArrayIndex(HRectArray)]) / 8;
  441.                         key int = HMSTRResItemID+HMTrackCntlID;
  442.                         point;                        /* tip                */
  443.                         rect;                        /* hotRect            */
  444.                         integer;                    /* Enabled control message STR ID        */
  445.                         integer;                    /* Disabled control message STR ID        */
  446.                         integer;                    /* Checked control message STR ID        */
  447.                         integer;                    /* other control message STR ID            */    
  448. hrctTCSTRResEnd:                        
  449.                 };
  450.         };
  451. };
  452.  
  453.  
  454.  
  455. /*----------------------------hovr • Help Mgr Override Resource Template-------------------------*/
  456.  
  457. type 'hovr' {
  458.         integer;                                    /* Help Version */
  459.         longint;                                    /* Options */
  460.         integer;                                    /* Balloon ProcID */
  461.         integer;                                     /* Balloon variant */
  462.         integer = $$CountOf(HOverrideArray);        /* Count of array items (below) */
  463.  
  464.         switch {            /* Special Message for missing array items */
  465.                 case HMStringItem:
  466. hovrMissStringBeg:        integer = (hovrMissStringEnd - hovrMissStringBeg) / 8;
  467.                         key int = HMStringItemID;
  468.                         pstring;                /* missing HOverrideArray item  */
  469.                         align word;                /* always word align the code for the pstring */
  470. hovrMissStringEnd:                        
  471.                 case HMPictItem:
  472. hovrMissPictBeg:        integer = (hovrMissPictEnd - hovrMissPictBeg) / 8;
  473.                         key int = HMPictItemID;
  474.                         integer;                /* missing HOverrideArray item  */
  475. hovrMissPictEnd:
  476.                 case HMStringResItem:
  477. hovrMissStringResBeg:    integer = (hovrMissStringResEnd - hovrMissStringResBeg) / 8;
  478.                         key int = HMStringResItemID;
  479.                         integer; integer;        /* Miss or 0 HOverrideArray STR# res ID, index # */
  480. hovrMissStringResEnd:
  481.                 case HMTEResItem:
  482. hovrMissTEResBeg:        integer = (hovrMissTEResEnd - hovrMissTEResBeg) / 8;
  483.                         key int = HMTEResItemID;
  484.                         integer;                /* use for missing HOverrideArray items */
  485. hovrMissTEResEnd:
  486.                 case HMSTRResItem:
  487. hovrMissSTRResBeg:        integer = (hovrMissSTRResEnd - hovrMissSTRResBeg) / 8;
  488.                         key int = HMSTRResItemID;
  489.                         integer;                /* use for missing HOverrideArray items */
  490. hovrMissSTRResEnd:
  491.                 case HMSkipItem:
  492. hovrMissSkipBeg:        integer = (hovrMissSkipEnd - hovrMissSkipBeg) / 8;
  493.                         key int = HMSkipItemID;    /* use when there is no missing msg */
  494. hovrMissSkipEnd:                        
  495.             };
  496.             
  497.         array HOverrideArray {
  498.                 switch {
  499.                     case HMStringItem:
  500. hovrStringBeg:            integer = (hovrStringEnd[$$ArrayIndex(HOverrideArray)] - hovrStringBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  501.                         key int = HMStringItemID;
  502.                         pstring;            /* message string  */
  503.                         align word;
  504. hovrStringEnd:                        
  505.                     case HMPictItem:
  506. hovrPictBeg:            integer = (hovrPictEnd[$$ArrayIndex(HOverrideArray)] - hovrPictBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  507.                         key int = HMPictItemID;
  508.                         integer;            /* message pict ID  */
  509. hovrPictEnd:                                                
  510.                     case HMStringResItem:
  511. hovrStringResBeg:        integer = (hovrStringResEnd[$$ArrayIndex(HOverrideArray)] - hovrStringResBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  512.                         key int = HMStringResItemID;
  513.                         integer; integer;    /* STR# res ID, index # */
  514. hovrStringResEnd:                        
  515.                     case HMTEResItem:
  516. hovrTEResBeg:            integer = (hovrTEResEnd[$$ArrayIndex(HOverrideArray)] - hovrTEResBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  517.                         key int = HMTEResItemID;
  518.                         integer;            /* message TERes ID */
  519. hovrTEResEnd:                        
  520.                     case HMSTRResItem:
  521. hovrSTRResBeg:            integer = (hovrSTRResEnd[$$ArrayIndex(HOverrideArray)] - hovrSTRResBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  522.                         key int = HMSTRResItemID;
  523.                         integer;            /* message STR ID */
  524. hovrSTRResEnd:                        
  525.                     case HMSkipItem:
  526. hovrSkipBeg:            integer = (hovrSkipEnd[$$ArrayIndex(HOverrideArray)] - hovrSkipBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  527.                         key int = HMSkipItemID;
  528. hovrSkipEnd:                        
  529.                 };
  530.         };
  531. };
  532.  
  533.  
  534. /*----------------------------hfdr • Help Mgr Finder Application Balloon Template-------------------------*/
  535. type 'hfdr' {
  536.         integer;                                    /* Help Version         */
  537.         longint;                                    /* Options                */
  538.         integer;                                    /* Balloon ProcID        */
  539.         integer;                                     /* Balloon Variant        */
  540.         integer = $$CountOf(HFdrArray);                /* Count of hfdr Msgs    */
  541.  
  542.         array HFdrArray {
  543.                 switch {
  544.                     case HMStringItem:
  545. hfdrStringBeg:            integer = (hfdrStringEnd[$$ArrayIndex(HFdrArray)] - hfdrStringBeg[$$ArrayIndex(HFdrArray)]) / 8;
  546.                         key int = HMStringItemID;    /* helpType            */
  547.                         pstring;                    /* STR255            */
  548.                         align word;                    /* keep aligned        */
  549. hfdrStringEnd:
  550.                     case HMPictItem:
  551. hfdrPictBeg:            integer = (hfdrPictEnd[$$ArrayIndex(HFdrArray)] - hfdrPictBeg[$$ArrayIndex(HFdrArray)]) / 8;
  552.                         key int = HMPictItemID;        /* helpType            */
  553.                         integer;                    /* Picture Res ID    */
  554. hfdrPictEnd:
  555.                     case HMStringResItem:
  556. hfdrStringResBeg:        integer = (hfdrStringResEnd[$$ArrayIndex(HFdrArray)] - hfdrStringResBeg[$$ArrayIndex(HFdrArray)]) / 8;
  557.                         key int = HMStringResItemID;/* helpType            */
  558.                         integer; integer;            /* STR# ID, index #    */
  559. hfdrStringResEnd:
  560.                     case HMTEResItem:
  561. hfdrTEResBeg:            integer = (hfdrTEResEnd[$$ArrayIndex(HFdrArray)] - hfdrTEResBeg[$$ArrayIndex(HFdrArray)]) / 8;
  562.                         key int = HMTEResItemID;    /* helpType            */
  563.                         integer;                    /* TextEdit res ID    */
  564. hfdrTEResEnd:
  565.                     case HMSTRResItem:
  566. hfdrSTRResBeg:            integer = (hfdrSTRResEnd[$$ArrayIndex(HFdrArray)] - hfdrSTRResBeg[$$ArrayIndex(HFdrArray)]) / 8;
  567.                         key int = HMSTRResItemID;    /* helpType            */
  568.                         integer;                    /* STR res ID        */
  569. hfdrSTRResEnd:
  570.                     case HMSkipItem:
  571. hfdrSkipBeg:            integer = (hfdrSkipEnd[$$ArrayIndex(HFdrArray)] - hfdrSkipBeg[$$ArrayIndex(HFdrArray)]) / 8;
  572.                         key int = HMSkipItemID;        /* skip item (leave a hole) */
  573. hfdrSkipEnd:
  574.                 };
  575.         };
  576. };
  577.  
  578. #endif __BALLOONTYPES_R__